package jianzhiOffer;

/**
 * 04. 二维数组中的查找
 * 在一个 n * m 的二维数组中，每一行都按照从左到右 非递减 的顺序排序，每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。
 *
 * @author 司松坡
 * @createTime 2023年04月23日
 */
public class Jian04 {
    public boolean findNumberIn2DArray(int[][] matrix, int target) {
        if (matrix.length==0||matrix[0].length==0){
            return false;
        }
        if(matrix[0][0]>target){
            return false;
        }
        int m = matrix[0].length;
        int n = matrix.length;
        if(matrix[n-1][m-1]<target){
            return false;
        }
        for (int i = 0; i < n;i++){
            for (int j = 0;j<m;j++){
                if (matrix[i][j]==target){
                    return true;
                }
                if (matrix[i][j]>target){
                    m = j;
                    continue;
                }
            }
        }
        return false;
    }

}
